System and method for sequence control

ABSTRACT

To be readily adaptable to all sorts of control modes, including process suspend and resume, and reverse sequence control, a series of processes is divided into a plurality of steps, and the substance of the processing performed by each step is defined as a processing unit. Each time a processing unit runs, the system looks up a run process information area in which process information has been recorded, and runs the next processing unit specified there. Also, each time a processing unit runs, the process information is updated with information relating to the next processing unit to be run.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to sequence control. In particular,it relates to a system and method for sequence control, and to arecording medium in which a sequence control program has been recorded.

[0003] The present invention is a novel proposal relating to sequencecontrol which will make it easier to create and maintain sequencecontrol programs. The invention also relates to resuming and continuingto run a sequence after the sequence has been suspended, and to runninga sequence backwards.

[0004] 2. Description of Related Art

[0005] A control system that uses software requires a control programfor indicating control procedures to the sequence control system. Aknown method of writing such a control program is to divide a series ofprocesses in time series fashion into a plurality of steps, and to useflowcharts that indicate the process content of each step.

[0006] For example, a series of processes is divided into steps A, B, C,D and E, each of which performs a process with a respective objective.These steps are controlled as follows: when step A is completed, thecontrol flow advances to step B, and when step B is completed, itadvances to step C. A control method of this sort is called sequentialcontrol.

[0007] In this conventional sequential control, process contents andprocedures are changed by rewriting the flowcharts. A flowchart from“START” to “END” is a series of control procedures, and one way thatthese control procedures can be changed is to switch between a pluralityof flowcharts that have been provided in advance.

[0008] Consider the introduction, in a conventional flowchart-basedsequential control system of this sort, of a control procedure forsuspending processing at an arbitrary stage and then resuming theprocessing. To implement such a control procedure would for examplerequire a program that 1) provides, at each process step, a step forconfirming whether or not there is a suspend instruction, 2) provides aseparate flowchart at a place to which the control flow jumps when asuspend instruction is received, 3) provides, in this separateflowchart, a step for confirming whether or not there is a resumeinstruction, and 4) returns to a specified position in the originalflowchart when it has received a resume instruction.

[0009] Alternatively, consider the introduction, in a conventionalflowchart-based sequential control system of this sort, of a controlprocedure for reversing a process at an arbitrary stage. To implementsuch a control procedure would for example require a program that 1)provides, at each process step, a step for confirming whether or notthere is a reversal instruction, 2) provides a separate flowchart at aplace to which the control flow jumps when a reversal instruction isreceived, 3) provides, for this separate flowchart, a program forrunning the steps that are the reverse of the aforementioned steps, 4)provides a step for confirming whether or not there is a returninstruction, and 5) returns to a specified position in the originalflowchart when it has received a return instruction.

[0010] Thus a conventional sequential control system requires theprovision of a complicated program in order to suspend and resume aseries of processes, and to perform reverse sequence control.

SUMMARY OF THE INVENTION

[0011] The present invention has been devised in the light of thissituation. It is an object of the invention to provide a system andmethod for sequence control, and a recording medium, that are readilyadaptable to all sorts of control modes, including process suspend andresume, and reverse sequence control.

[0012] In this invention, a series of processes is divided into aplurality of steps, and the substance of the processing performed byeach step is defined as a processing unit. Each time a processing unitruns, the system looks up a run process information area in whichprocess information has been recorded, and runs the next processing unitspecified there. Also, each time a processing unit runs, the processinformation is updated with information relating to the next processingunit to be run. Namely, a feature of this invention is that each time aprocessing unit runs, the next process is confirmed by returning to therun process information area. As a result, the control proceduresindicated by a control program can easily be changed by rewriting theprocess information in the run process information area.

[0013] As well as recording process information in a run processinformation area, resume process information can be written in a resumeprocess information area. This resume process information indicateswhich processing unit to run if the sequence is to be resumed after acurrently running processing unit is suspended. The provision of resumeprocess information makes it clear which processing unit the processingshould start from when resuming after a processing unit has beensuspended while running, which means that resuming is performed rapidly.

[0014] In addition, reverse process information can be written in areverse process information area. When it is desired to cause acurrently running sequence to proceed in the reverse direction, byissuing a command to this effect, the reverse process informationenables the run process information to be written and read in thereverse order, thereby enabling the reverse sequence to be rapidlyexecuted. This simplifies the extensive changes of control procedurethat are involved in reverse sequence control.

[0015] The following description may make this invention easier tounderstand. Namely, introducing the concept of a processing unitindicative of the content of a process, and dealing separately with thisprocessing unit and the process information indicative of the processingorder, makes it easier to create a program for suspending and resuming aprocess, and for performing reverse sequence control. This inventionalso introduces an hierarchical structure among processing units andsubdivides processing units, whereby it can cope with both small-scaleand large-scale changes in control procedure.

[0016] According to a first aspect, the present invention is a sequencecontrol system having the following features:

[0017] a) a sequence program is expressed as a series of processingunits, each comprising input and output of information, decisions andcalculations;

[0018] b) for each processing unit, the processing unit to be run nextis specified as run process information;

[0019] c) there is provided, in a memory area, a run process informationarea that can be looked up by all processing units, and which, each timea processing unit finishes running, is updated with the aforementionedrun process information specified by that processing unit;

[0020] d) there is provided means for looking up the run processinformation area when a processing unit finishes running, and meanswhereby the processing unit specified in this run process informationarea starts running.

[0021] Preferably, a sequence control system according to the presentinvention comprises:

[0022] a) in addition to run process information, resume processinformation for specifying the processing unit from which the sequenceis to be resumed after being suspended;

[0023] b) a resume process information area for storing, in theaforementioned memory area, resume process information;

[0024] c) means which, when a sequence is to be resumed after thatsequence has been suspended, rewrites the processing unit in the runprocess information area with the processing unit specified in theresume process information area, and runs the processing unit specifiedby the resume process information.

[0025] Preferably, a sequence control system according to the presentinvention comprises:

[0026] a) a reverse sequence program for running a sequence that is thereverse of a given sequence;

[0027] b) reverse process information for specifying a processing unitof the aforementioned reverse sequence program, when running a reversesequence;

[0028] c) a reverse process information area for storing, in theaforementioned memory area, the reverse process information forspecifying a processing unit when running the aforementioned reversesequence;

[0029] d) means for running the reverse sequence processing unitspecified in the reverse process information area, when running thegiven sequence in reverse.

[0030] According to a second aspect, the present invention is a sequencecontrol method comprising:

[0031] a) constructing a sequence program as a series of processingunits, each comprising input and output of information, decisions andcalculations;

[0032] b) specifying, for each processing unit, the processing unit tobe run next; and

[0033] c) running this specified processing unit.

[0034] Preferably, a sequence control method according to this inventioncomprises:

[0035] a) for each processing unit, in addition to specifying theprocessing unit to be run next as run process information, specifyingthe processing unit to be run after sequence suspension as resumeprocess information;

[0036] b) for normal running, running the processing unit specified bythe aforementioned run process information; and for resuming aftersequence suspension, running the processing unit specified by the resumeprocess information.

[0037] Preferably, a sequence control method according to this inventionalso comprises:

[0038] a) for each processing unit, in addition to specifying theprocessing unit to be run next in normal sequence processing, includingreverse process information for specifying the next processing unit whenrunning a sequence in the opposite direction to normal running;

[0039] b) in normal sequence running, running the processing unitspecified by the run process information, and when running the reversesequence, running the reverse sequence processing unit that is specifiedby the reverse process information.

[0040] According to a third aspect, this invention is a recording mediumin which a sequence program has been recorded, wherein:

[0041] a) the sequence program is divided into a plurality of processingunits, each comprising input and output of information, decisions andcalculations;

[0042] b) for each processing unit, the processing unit to be run nextis specified as run process information;

[0043] c) the sequence program runs the processing unit specified by therun process information.

[0044] Preferably, a recording medium according to this invention is onein which a sequence program has been recorded, wherein:

[0045] a) for each processing unit, the processing unit to be run nextis specified as run process information, and additionally, theprocessing unit to be run after sequence suspension is specified asresume process information;

[0046] b) for normal sequence running, the sequence program runs theprocessing unit specified by the run process information, and forresuming after sequence suspension, the sequence program runs theprocessing unit specified by the resume process information.

[0047] Preferably, a recording medium according to this invention is onein which a sequence program has been recorded, wherein:

[0048] a) for each processing unit, the processing unit to be run nextin normal sequence processing is specified, and there is also provided areverse sequence in which is specified the next processing unit whenrunning a sequence in the opposite direction to normal running;

[0049] b) in normal sequence running, the sequence program runs theprocessing unit specified by the run process information, and whenrunning the reverse sequence, the sequence program runs the reversesequence processing unit specified by the reverse process information.

BRIEF DESCRIPTION OF THE DRAWINGS

[0050] Specific embodiments of the present invention will now bedescribed, by way of example only, with reference to the accompanyingdrawings in which:

[0051]FIG. 1 is a block diagram of a sequence control system accordingto an embodiment of the invention.

[0052]FIG. 2 serves to explain the processing units.

[0053]FIG. 3 shows the hierarchical structure of the processing units.

[0054]FIG. 4 shows a sequence model serving to explain the action level.

[0055]FIG. 5 shows a sequence flow serving to explain the action level.

[0056]FIG. 6 shows an example of a program at the action level.

[0057]FIG. 7 shows an example of a program at the block level.

[0058]FIG. 8 shows an example of a program at the step level.

[0059]FIG. 9 shows an example of a program at the instruction level.

[0060]FIG. 10 shows the correspondence between the configuration of aprocessing unit according to this embodiment and the flow of a sequence.

[0061]FIG. 11 serves to explain the control of sequence progression.

[0062]FIG. 12 shows a specific control system.

[0063]FIG. 13 is a flowchart for the control of sequence progression inthe specific control system.

[0064]FIG. 14 serves to explain the control involved in suspending andresuming a sequence.

[0065]FIG. 15 shows an example of a situation where there are aplurality of sequences.

[0066]FIG. 16 serves to explain the control of sequence progression thatcan include control of sequence suspend and resume.

[0067]FIG. 17 shows an example of a sequence that has been suspended.

[0068]FIG. 18 shows an example of a sequence that is to be resumed afterbeing suspended.

[0069]FIG. 19 serves to explain the control of sequence progressionwhere the sequence can run both forwards and backwards.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0070] A sequence control system according to an embodiment of thepresent invention will be described with reference to FIG. 1, which is ablock diagram of such a sequence control system.

[0071] As shown in FIG. 1, in a sequence control system according to anembodiment of this invention: a sequence program is stored in processingunit storage part 3, said sequence program being expressed as a sequenceof processing units each comprising input and output of information,decisions and calculations; for each processing unit, the processingunit to be run next is specified as run process information; there isprovided, in a memory area of process information storage part 2, a runprocess information area 10 that can be looked up by all processingunits, and which, each time a processing unit finishes running, isupdated by the aforementioned run process information specified by thatprocessing unit; processing unit control part 4 looks up run processinformation area 10 when a processing unit finishes running; andprocessing unit run part 5 starts running the processing unit specifiedby this run process information area 10.

[0072] In addition to run process information area 10, processinformation storage part 2 is also provided with resume processinformation area 11 for storing, in the aforementioned memory area,resume process information for specifying the processing unit from whicha sequence is to be resumed after being suspended. When a sequence is tobe resumed after that sequence has been suspended, processing unitcontrol part 4 rewrites the processing unit in run process informationarea 10 with the processing unit specified in resume process informationarea 11. Processing unit run part 5 then runs the processing unitspecified by this resume process information.

[0073] Process information storage part 2 is also provided with reverseprocess information area 12 for storing, in the aforementioned memoryarea, reverse process information for specifying a processing unit of areverse sequence program when a reverse sequence is to be run; and whena sequence is to be run in reverse, processing unit run part 5 runs thereverse sequence processing unit specified in reverse processinformation area 12.

[0074] A sequence control system according to this embodiment of theinvention operates as a system whereby sequence control is performed asa result of a programmer using programming part 1 to create, in the formof programs, run process information, resume process information andreverse process information within process information storage part 2,and processing units within processing unit storage part 3. The runprocess information, resume process information and reverse processinformation in process information storage part 2, and the processingunits in processing unit storage part 3, are recorded in a recordingmedium. Software is also recorded in the recording medium, and thissoftware, by being installed in a computer device, makes this computerdevice into a system equivalent to process information storage part 2,processing unit storage part 3, processing unit control part 4,processing unit run part 5 and input/output part 6. By using therecording medium to install these different types of information andsoftware in a computer device, this computer device can be made into asequence control system according to this embodiment of the invention.

[0075] This embodiment of the invention will now be described in greaterdetail.

[0076] Processing units will be described with reference to FIG. 2. Asshown in FIG. 2, processing units A and B each have an input and anoutput, and each performs decisions or calculations. In this embodiment,it will be assumed that processing units A and B perform differentprocesses, and that if the same processing is to be repeated, the sameprocessing unit is run repeatedly.

[0077] The hierarchical structure of the processing units will bedescribed with reference to FIG. 3, which shows that processing unitshave hierarchical levels that can be represented as a nested structure.The example of FIG. 3 shows sequence 30 comprising two processing units,wherein each processing unit has action level 31, block level 32 withinaction level 31, step level 33 within block level 32, and instructionlevel 34 within block level 32.

[0078] The action level will be described with reference to FIGS. 4, 5and 6. FIG. 4 shows a sequence model serving to explain the actionlevel. FIG. 5 shows a sequence flow serving to explain the action level.FIG. 6 shows an example of a program at the action level.

[0079] The sequence model shown in FIG. 4 is a sequence model forreturning to point A (S2 sown in FIG. 5) after moving from point A topoint B (S1 shown in FIG. 5). A sequence model of this sort can bedivided into parts by looking at the specific operations (which will becalled “actions”) that occur in the sequence. In the example shown inFIG. 6, sequence 60 can be expressed as two actions 61 and 62 whereinaction 61 is called “move from point A to point B and confirm completionof the operation”, and action 62 is called “move from point B to point Aand confirm completion of the operation”.

[0080] The block level will be described with reference to FIG. 7, whichshows an example of a program at the block level. The aforementionedaction level can be divided into parts by looking at the specificprocesses (which will be called “blocks”) that occur in the actions. Inthe example shown in FIG. 7, actions 61 and 62 can each be expressed astwo blocks wherein action 61 is separated into “movement” block 71 and“movement confirmation” block 72 and action 62 is separated into“movement” block 73 and “movement confirmation” block 74.

[0081] The step level will be described with reference to FIG. 8, whichshows an example of a program at the step level. The aforementionedblock level can be divided into parts by looking at the specificprocedures (which will be called “steps”) that occur in the blocks. Inthe example shown in FIG. 8, blocks 71, 72, 73 and 74 can each beexpressed as steps wherein “movement” block 71 comprises “set themovement to point B” step 81 and “move to the set destination” step 82,while movement confirmation block 72 comprises “confirm movement topoint B” step83. Similarly, “movement” block 73 comprises “set themovement to point A” step 84 and “move to the set destination” step 85,while “movement confirmation” block 74 comprises “confirm movement topoint A” step 86.

[0082] The instruction level will be described with reference to FIG. 9,which shows an example of a program at this level. At the instructionlevel, a programming language (which will be called the “instructioncode”) is used to express the steps that have been set at the steplevel. As shown in FIG. 9, in the case of “set the movement to point B”step 81, instruction level 91 describes the destination of the movementthat has been set, its velocity, and the drive method to be employed.

[0083]FIG. 10 shows the correspondence between the configuration of aprocessing unit according to this embodiment and the flow of a sequence.Serial sequence 100 is divided into a plurality of actions 101, and eachaction 100 has an hierarchical structure comprising block levels 102,step levels 103 and instruction levels 104. In other words, a serialsequence is divided into a plurality of operations (“actions”) and eachoperation is further divided into a plurality of processes (“blocks”).Procedures (“steps”) are set for implementing these processes, and theseprocedures are expressed using a programming language (“instructioncode”). As a result, a control program can be created from easy tounderstand processing units.

[0084] The control of sequence progression will be described withreference to FIG. 11, which shows that sequence progression iscontrolled as follows. Namely, information relating to the processingunit to be run next is written in each processing unit, and when aprocessing unit finishes running, processing unit control part 4rewrites the run process information that is written in run processinformation area 10, this being the storage area that serves to specifythe processing unit to be run next. Processing unit run part 5 looks uprun process information area 10, sees the processing unit to be run next(S11, S13, S15, S17, S19 and S21), and runs that processing unit (S12,S14, S16, S18, S20 and S22).

[0085] This embodiment of the invention will be described in applicationto the specific control system shown in FIG. 12, which assumes a taskthat is controlled by causing a moving part to shift among points A, Band C. The control unit outputs a signal to the drive device to specifythe direction of rotation of the ball screw. Input signals for obtaininginformation regarding the position of the moving part are generated atpoints A, B and C. By way of an example, a description will be given ofcausing the moving part to move in order of A, C, B, C and A.

[0086]FIG. 13 is a flowchart for controlling sequence progression in thecontrol system depicted in FIG. 12. Processing units PU1 toPU10 areprocessing units at the aforementioned block level, while processingunits PU11+PU2, PU3+PU4, PU5+PU6, PU7+PU8 and PU9+PU10 are processingunits at the aforementioned action level. There are also step levelprocessing units contained in the block level processing units, andinstruction level processing units contained in the step levelprocessing units, but reference to these units will be omitted from thefollowing description. The control unit of FIG. 12 is provided with asequence control system according to this embodiment.

[0087] When the control unit issues a sequence start instruction,processing unit run part 5 shown in FIG. 1 looks up run processinformation area 10 in process information storage part 2. At theoutset, information to the effect that processing unit PU1 is to be runis recorded in run process information area 10. In accordance with thisrun process information, the process “move to point A” corresponding toprocessing unit PU1 is executed (S31). When running of processing unitPU1 is completed, processing unit control part 4 rewrites the runprocess information written in run process information area 10, whichspecifies the next processing unit to be run, substituting informationrelating to processing unit PU2.

[0088] In accordance with this rewritten run process information,processing unit run part 5 runs the process “confirm move to point A”corresponding to processing unit PU2 (S32). When running of processingunit PU2 is completed, processing unit control part 4 rewrites the runprocess information written in run process information area 10, whichspecifies the next processing unit to be run, substituting informationrelating to processing unit PU3.

[0089] In accordance with this rewritten run process information,processing unit run part 5 runs the process “move to point C”corresponding to processing unit PU3 (S33). When running of processingunit PU3 is completed, processing unit control part 4 rewrites the runprocess information written in run process information area 10, whichspecifies the next processing unit to be run, substituting informationrelating to processing unit PU4.

[0090] In accordance with this rewritten run process information,processing unit run part 5 runs the process “confirm move to point C”corresponding to processing unit PU4 (S34). When running of processingunit PU4 is completed, processing unit control part 4 rewrites the runprocess information written in run process information area 10, whichspecifies the next processing unit to be run, substituting informationrelating to processing unit PU5.

[0091] In accordance with this rewritten run process information,processing unit run part 5 runs the process “move to point B”corresponding to processing unit PU5 (S35). When running of processingunit PU5 is completed, processing unit control part 4 rewrites the runprocess information written in run process information area 10, whichspecifies the next processing unit to be run, substituting informationrelating to processing unit PU6.

[0092] In accordance with this rewritten run process information,processing unit run part 5 runs the process “confirm move to point B”corresponding to processing unit PU6 (S36). When running of processingunit PU6 is completed, processing unit control part 4 rewrites the runprocess information written in run process information area 10, whichspecifies the next processing unit to be run, substituting informationrelating to processing unit PU7.

[0093] In accordance with this rewritten run process information,processing unit run part 5 runs the process “move to point C”corresponding to processing unit PU7 (S37). When running of processingunit PU7 is completed, processing unit control part 4 rewrites the runprocess information written in run process information area 10, whichspecifies the next processing unit to be run, substituting informationrelating to processing unit PU8.

[0094] In accordance with this rewritten run process information,processing unit run part 5 runs the process “confirm move to point C”corresponding to processing unit PU8 (S38). When running of processingunit PU8 is completed, processing unit control part 4 rewrites the runprocess information written in run process information area 10, whichspecifies the next processing unit to be run, substituting informationrelating to processing unit PU9.

[0095] In accordance with this rewritten run process information,processing unit run part 5 runs the process “move to point A”corresponding to processing unit PU9 (S39). When running of processingunit PU9 is completed, processing unit control part 4 rewrites the runprocess information written in run process information area 10, whichspecifies the next processing unit to be run, substituting informationrelating to processing unit PU10.

[0096] In accordance with this rewritten run process information,processing unit run part 5 runs the process “confirm move to point A”corresponding to processing unit PU10 (S40). When running of processingunit PU10 is completed, processing unit control part 4 rewrites the runprocess information written in run process information area 10, whichspecifies the next processing unit to be run, substituting informationrelating to processing unit PU11.

[0097] In accordance with this rewritten run process information,processing unit run part 5 tries to run the process corresponding toprocessing unit PU11 (S41), but because there is no processing unitPU11, it recognizes that the sequence has finished.

[0098] The control involved in suspending and resuming a sequence willbe described with reference to FIG. 14. Whereas the control of sequenceprogression involved providing information that specifies, in advance,the processing unit to be run next, the control required for resuming asequence after that sequence has been suspended involves providinginformation that specifies, in advance, the processing unit to which theprocessing must return when resuming from a state of suspension. Theformer information is called “run process information” while the latteris called “resume process information”, and these two kinds of processinformation are respectively written in run process information area 10and resume process information area 11 of process information storagepart 2. If there are a plurality of sequences, as depicted in FIG. 15, aseparate memory area is allocated to each sequence, and run processinformation area 10 and resume process information area 11 are eachdivided into a plurality of areas.

[0099] The control of sequence progression that can include control ofsequence suspend and resume, will be described with reference to FIG.16. As shown in FIG. 16, an initialization process is provided, and thisis always run at the outset, prior to running the sequence. To move fromthe initialization process to an ordinary process, the resume processinformation is transferred (by the initialization) to the run processinformation. The sequence then progresses, starting from the ordinaryprocess that has been specified as a result of this transfer ofinformation.

[0100] The example of FIG. 16 shows the following progression:initialization process, normal process A, normal process B, normalprocess C, normal process D and normal process E. The initializationprocess is always run first of all, when the running of the sequence isto be started. In the initialization process, normal process A iswritten in advance as the resume process information, and theinitialization process is written as the run process information. Whenrunning of the sequence is to be started, the resume process informationis transferred to the run process information. As a result, the resumeprocess information and the run process information both become “normalprocess A”, and the sequence moves from initialization to normal processA.

[0101] When normal process A is completed, processing unit control part4 updates the resume process information and the run process informationthat relate to normal process A, with corresponding information relatingto next normal process B. When normal process B is completed, processingunit control part 4 updates the resume process information and the runprocess information that relate to normal process B, with correspondinginformation relating to next normal process C. When normal process C iscompleted, processing unit control part 4 updates the resume processinformation and the run process information that relate to normalprocess C, with corresponding information relating to next normalprocess D. When normal process D is completed, processing unit controlpart 4 updates the resume process information and the run processinformation that relate to normal process D, with correspondinginformation relating to next normal process E. When normal process E iscompleted, processing unit control part 4 updates the resume processinformation and the run process information that relate to normalprocess E, with corresponding information relating to the next normalprocess.

[0102] When this sequence has been suspended as shown in FIG. 17, thefollowing are written in run process information area 10 and resumeprocess information area 11 respectively: “resume process information:normal process D” and “run process information: normal process D”.

[0103] When this sequence is to be resumed after being suspended, asshown in FIG. 18, the initialization process is first of all run.Initialization is always run at the outset when a sequence is to be run,whatever the circumstances. Because in this example the processing wassuspended at normal process C, the following are written in run processinformation area 10 and resume process information area 11 respectively:“run process information: initialization” and “resume processinformation: normal process D”. Transferring the run process informationto the resume process information gives: “run process information:normal process D” and “resume process information: normal process D”,which means that normal process D is carried out after initialization,thereby resuming the sequence after the suspension.

[0104] This example has been described in terms of the sequence beingresumed, after initialization, from normal process D. However, theprocessing unit at which the sequence restarts can be set as desired byrewriting the resume process information that is written in resumeprocess information area 11. For example, in the case of a sequenceconsisting of normal process B for positioning a workpiece and normalprocess C for machining the workpiece, if the sequence has beensuspended at normal process C, the control required to reconfirm whetheror not the workpiece is in the correct position can easily be performedby resuming the sequence from normal process B.

[0105] Control of sequence progression where the sequence can run bothforwards and backwards will be described with reference to FIG. 19. Thepresent invention makes it easy to implement sequence control such that,at a point in a forward running sequence, the sequence is run backwardsto a position before a particular step, and then continued forwards fromthat step. Such control can be easily implemented as follows: when aprocessing unit has finished running, information specifying theprocessing unit to be run next is used as information relating to thereverse running direction. Such information will be called “reverseprocess information” and is written in reverse process information area12 of process information storage part 2.

[0106] In the example given in FIG. 19, when the processing unit “moveto point C” has been run in the forward sequence, it is possible to runa step whereby the sequence returns to point B. This is done byspecifying, as the next processing unit, the processing unit “move topoint B” in the reverse sequence, and this is done by means of thereverse process information.

[0107] Thus in the present invention, because a process involvingmovements is divided up into actions, those movements can be reversed byrunning those actions in reverse. Accordingly, a reverse sequence can becreated by describing movements that are the opposite of those performedby the forward sequence. This enables the running direction to beshifted between forward and reverse sequences.

[0108] In the example of FIG. 19, two sequences are provided: a forwardsequence which describes only the forward progression of processesinvolving reversible devices, and a reverse sequence comprisingprocesses that produce movements that are the reverse of those producedby this forward sequence. Each sequence has distinguishable codes thatare different for each movement-producing process, but the codesemployed by the two sequences (forward and reverse) are the same.Accordingly, the movement-producing processes of the reverse sequence,which are specified by the same codes that are used by the forwardsequence, can be expressed as movement-producing processes that returnthe position of the forward processes to a position they were in priorto movement.

[0109] As has been explained above, the present invention is readilyadaptable to all sorts of control modes, including process suspend andresume, and reverse sequence control.

What is claimed is:
 1. A sequence control system wherein: a sequenceprogram is expressed as a series of processing units, each comprisinginput and output of information, decisions and calculations; for eachprocessing unit, the processing unit to be run next is specified as runprocess information; there is provided, in a memory area, a run processinformation area that can be looked up by all processing units, andwhich, each time a processing unit finishes running, is updated with theaforementioned run process information specified by that processingunit; and there is provided means for looking up the run processinformation area when a processing unit finishes running, and meanswhereby the processing unit specified in this run process informationarea starts running.
 2. A sequence control method comprising:constructing a sequence program as a series of processing units, eachcomprising input and output of information, decisions and calculations;specifying, for each processing unit, the processing unit to be runnext; and running this specified processing unit.
 3. A recording mediumin which a sequence program has been recorded, wherein: the sequenceprogram is divided into a plurality of processing units, each comprisinga series of processes including input and output of information,decisions and calculations; for each processing unit, the processingunit to be run next is specified as run process information; and thesequence program runs the processing unit specified by the run processinformation.
 4. A sequence control system according to claim 1,comprising: in addition to run process information, resume processinformation for specifying the processing unit from which the sequenceis to be resumed after being suspended; a resume process informationarea for storing, in the aforementioned memory area, the resume processinformation; and means which, when a sequence is to be resumed afterthat sequence has been suspended, rewrites the processing unit in therun process information area with the processing unit specified in theresume process information area, and runs the processing unit that wasspecified by the resume process information.
 5. A sequence controlmethod comprising: constructing a sequence program as a series ofprocessing units, each comprising input and output of information,decisions and calculations; for each processing unit, in addition tospecifying the processing unit to be run next as run processinformation, specifying the processing unit to be run after sequencesuspension as resume process information; and for normal running,running the processing unit specified by the aforementioned run processinformation; and for resuming after sequence suspension, running theprocessing unit specified by the resume process information.
 6. Arecording medium in which a sequence program has been recorded, wherein:the sequence program is divided into a plurality of processing units,each comprising input and output of information, decisions andcalculations; for each such processing unit, the processing unit to berun next is specified as run process information, and additionally, theprocessing unit to be run after sequence suspension is specified asresume process information; and for normal sequence running, thesequence program runs the processing unit specified by the run processinformation, and for resuming after sequence suspension, the sequenceprogram runs the processing unit specified by the resume processinformation.
 7. A sequence control system according to claim 1,comprising: a reverse sequence program for running a sequence that isthe reverse of a given sequence; reverse process information forspecifying a processing unit of the aforementioned reverse sequenceprogram when running a reverse sequence; a reverse process informationarea for storing, in the aforementioned memory area, reverse processinformation for specifying a processing unit when running theaforementioned reverse sequence; and means for running the reversesequence processing unit specified in the reverse process informationarea, when running the given sequence in reverse.
 8. A sequence controlmethod comprising: dividing a sequence program into a plurality ofprocessing units, each comprising input and output of information,decisions and calculations; for each such processing unit, in additionto specifying the processing unit to be run next in normal sequenceprocessing, including reverse process information for specifying thenext processing unit when running a sequence in the opposite directionto normal running; and in normal sequence running, running theprocessing unit specified by the run process information, and whenrunning the reverse sequence, running the reverse sequence processingunit that is specified by the reverse process information.
 9. Arecording medium in which a sequence program has been recorded, wherein:the sequence program is divided into a plurality of processing units,each comprising input and output of information, decisions andcalculations; for each such processing unit, the processing unit to berun next in normal sequence processing is specified, and there is alsoprovided a reverse sequence in which is specified the next processingunit when running a sequence in the opposite direction to normalrunning; and in normal sequence running, the sequence program runs theprocessing unit specified by the run process information, and whenrunning the reverse sequence, the sequence program runs the reversesequence processing unit specified by the reverse process information.